//package com.gt.utils;
//
//import com.baomidou.mybatisplus.annotation.DbType;
//import com.baomidou.mybatisplus.annotation.IdType;
//import com.baomidou.mybatisplus.generator.AutoGenerator;
//import com.baomidou.mybatisplus.generator.InjectionConfig;
//import com.baomidou.mybatisplus.generator.config.*;
//import com.baomidou.mybatisplus.generator.config.po.TableInfo;
//import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
//import com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine;
//import org.junit.Test;
//
//import java.io.File;
//import java.util.ArrayList;
//import java.util.List;
//
//public class CodeGenerator {
//
//    @Test
//    public void generator() {
//        String tablePrefix = "ACT_";
//
//        String modelName = "";
//
//        String pathname = System.getProperty("user.dir");
//
//        String path = new File(pathname+"/gtH5Easyfont").getParent();
//
//        String[] include = {
//                "P_ACT_SCAN_ACTIVITY_SOURCE"
//        };
//        generateMapper(tablePrefix, modelName, include, path);
//    }
//
//    private void generateMapper(
//            String tablePrefix, final String modelName, String[] include, final String path) {
//
//        StrategyConfig strategyConfig =
//                new StrategyConfig()
//                        .setTablePrefix(tablePrefix)
//                        // .setTablePrefix("ITGL_")
//                        .setNaming(NamingStrategy.underline_to_camel)
//                        .setColumnNaming(NamingStrategy.underline_to_camel)
//                        .setRestControllerStyle(true)
//                        .setEntityLombokModel(false)
//                        .setEntityBuilderModel(false)
//                        .setEntitySerialVersionUID(false)
//                        .setControllerMappingHyphenStyle(false)
//                        .setInclude(include)
//                        .setEntityTableFieldAnnotationEnable(false);
////                        .setSuperControllerClass("com.xynew.controller.BaseController");
//
//        PackageConfig packageConfig =
//                new PackageConfig()
//                        .setParent("com.gt")
//                        .setModuleName(modelName)
//                        .setEntity("modules.scan.entity")
//                        .setMapper("modules.scan.mapper")
//                        // .setXml("xml")
//                        .setService("modules.scan.service")
//                        .setServiceImpl("modules.scan.service.impl")
//                        .setController("modules.scan.controller");
//
////         pojo service
//        TemplateConfig templateConfig =
//                new TemplateConfig()
//                        .setXml(null)
//                        .setMapper(null)
//                        .setServiceImpl(null)
//                        .setController(null);
//// mapper serviceimpl
//        TemplateConfig templateConfig1 =
//                new TemplateConfig()
//                        .setXml(null)
//                        .setEntity(null)
//                        .setService(null)
//                        .setController(null);
//
//
//        InjectionConfig injectionConfig =
//                new InjectionConfig() {
//                    @Override
//                    public void initMap() {
//                    }
//                };
//
//        InjectionConfig injectionConfig1 =
//                new InjectionConfig() {
//                    @Override
//                    public void initMap() {
//                    }
//                };
//
//        // 自定义输出配置
//        List<FileOutConfig> focList = new ArrayList<>();
//        // 自定义配置会被优先输出
//
//        // 如果模板引擎是 velocity
//        String templatePath = "/templates/mapper.xml.vm";
//        focList.add(
//                new FileOutConfig(templatePath) {
//                    @Override
//                    public String outputFile(TableInfo tableInfo) {
//                        return path + "/gtEasyfont.scan"
//                                + "/src/main/resources/mapper/"
//                                + tableInfo.getEntityName()
//                                + ".xml";
//                    }
//                });
//
//        injectionConfig.setFileOutConfigList(focList);
//
//        // 生成 api 代码
//        generateFile(path + "/gtEasyfont.scan", strategyConfig, packageConfig, templateConfig, injectionConfig1);
//
//        // 生成 service 代码
//        generateFile(path + "/gtEasyfont.scan", strategyConfig, packageConfig, templateConfig1, injectionConfig);
//
//    }
//
//
//    /**
//     * 文件生成
//     */
//    private void generateFile(
//            String property,
//            StrategyConfig strategyConfig,
//            PackageConfig packageConfig,
//            TemplateConfig templateConfig,
//            InjectionConfig injectionConfig) {
//        new AutoGenerator()
//                .setGlobalConfig(
//                        new GlobalConfig()
//                                .setOutputDir(property + "/src/main/java")
//                                .setAuthor(System.getProperty("user.name"))
//                                .setFileOverride(true)
//                                .setActiveRecord(false)
//                                .setEnableCache(false)
//                                .setOpen(false)
//                                .setBaseResultMap(false)
//                                .setBaseColumnList(false)
//                                .setIdType(IdType.ID_WORKER)
//                                .setSwagger2(false)
//                                .setXmlName("%sMapper")
//                                .setMapperName("%sMapper")
//                                .setServiceName("%sService")
//                                .setControllerName("%sController"))
//                .setDataSource(
//                        new DataSourceConfig()
//                                .setDbType(DbType.ORACLE)
//                                .setUrl("jdbc:oracle:thin:@192.168.140.230:1521:yyfdev")
//                                .setDriverName("oracle.jdbc.OracleDriver")
//                                .setUsername("pactuser")
//                                .setPassword("P_x0w.89"))
//                .setStrategy(strategyConfig)
//                .setPackageInfo(packageConfig)
//                .setCfg(injectionConfig)
//                .setTemplate(templateConfig)
//                .setTemplateEngine(new VelocityTemplateEngine())
//                .execute();
//    }
//}
